# 通过selenium打开浏览器，并打开百度网站搜索关键词"Python"，针对搜索的结果界面进行截图
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait           #显示等待模块
from selenium.webdriver.support import expected_conditions         #判断元素模块，用于等待指定元素出现

browser = webdriver.Chrome()
browser.maximize_window()  # 窗口最大化
# browser.set_window_size(1200, 800)      #设置浏览器窗口大小
url = 'https://www.baidu.com'
browser.get(url)
#设置隐式等待时间为10s。（让浏览器完成对页面元素的渲染）
browser.implicitly_wait(10)
# 通过元素ID获取元素
kw_input = browser.find_element(By.ID, 'kw')
# 模拟用户输入行为
kw_input.send_keys('Python')
# 通过CSS选择器获取元素
su_button = browser.find_element(By.CSS_SELECTOR, '#su')
# 模拟用户点击行为
su_button.click()

#创建显示等待对象
wait_obj = WebDriverWait(browser, 10)
# 设置等待条件（等待搜索结果的div出现）
wait_obj.until(
    expected_conditions.presence_of_element_located(
        (By.CSS_SELECTOR, '#content_left')
    )
)

# 通过浏览器对象的execute_script方法执行JavaScript代码，加载网页更多的内容。
# 执行JavaScript代码
browser.execute_script('document.documentElement.scrollTop = document.documentElement.scrollHeight')

# 截屏
browser.get_screenshot_as_file('python_result.png')
